<!-- eslint-disable vue/multi-word-component-names -->
<template>
    <div >
      <el-row>
        <el-col :span="8" style="padding-right:10px">
          <el-card class="box-card">
            <div class="user">
              <img src="../../assets/images/touxiang.jpg" alt="">
              <div class="user-info">
                <p class="name">Admin</p>
                <p class="acess">超级管理员</p>
              </div>
            </div>
            <div class="login-info">
              <p class="time">上次登录的时间：<span>2017-09-11</span></p>
              <p class="address">上次登录的地点：<span>北京</span></p>
            </div>
          </el-card>
          <el-card style="margin-top:20px;height:460px">
            <el-table  :data="tableData" style="width: 100%">
              <el-table-column v-for="(val,key) in tableLabel"  :prop="key" :label="val" :key="key"/>
            </el-table>
          </el-card>
        </el-col>
        <el-col :span="16" style="padding-left:10px">
          <div class="num">
              <el-card   v-for="item in countDate" :key="item.name" :body-style="{display:'flex',padding:0}">
                <i class="icon" :class="`el-icon-${item.icon}`" :style="{background:item.color}"></i>
                <div class="details">
                  <p class="price">￥{{item.value}}</p>
                  <p class="name">{{item.name}}</p>
                </div>
              </el-card>
          </div>
          <div>
            <el-card style="height:280px">
               <!-- 折线图 -->
               <div ref="echarts1" style="height:280px">
              </div>
            </el-card>
          </div>
          <div class="graph">
            <el-card style="height:260px">
              <div ref="echarts2" style="height:260px">
                <!-- 柱状图 -->
              </div>
            </el-card>
            <el-card style="height:260px">
             <!-- 饼状图 --> 
              <div ref="echarts3" style="height:240px">

              </div>
            </el-card>
          </div>
        </el-col>
      </el-row>
    </div>
  </template>
  
<script>
import { getData } from '../../api';
import * as echarts from 'echarts';
export default {
  // eslint-disable-next-line vue/multi-word-component-names
  name: 'home',
  data() {
    return {
      tableData: [],
      tableLabel: {
        name: "品牌",
        todayBuy: "日销售量",
        monthBuy: "月销售量",
        totalBuy: "总销售量"
      },
      countDate: [
        {
          name: '今日支付订单',
          value: 1234,
          icon: 'success',
          color: '#2ec7c9'
        },
        {
          name: '今日收藏量',
          value: 210,
          icon: 'star-on',
          color: '#ffb980'
        },
        {
          name: '今日未支付订单',
          value: 1234,
          icon: 'success',
          color: '#2ec7c9'
        },
        {
          name: '本月支付订单',
          value: 20,
          icon: 's-goods',
          color: '#5ab1ef'
        },
        {
          name: '本月未支付订单',
          value: 20,
          icon: 'star-on',
          color: '#ffb980'
        },
        {
          name: '本月收藏量',
          value: 20,
          icon: 's-goods',
          color: '#5ab1ef'
        }
      ]
    }
  },
  mounted() {
    getData().then((data) => {
      // console.log(data)
      const { tableData,orderData, userData,videoData } = data.data.data

      // console.log(tableData)
      this.tableData = tableData

      //曲线图
      // 基于准备好的dom，初始化echarts实例

      const echarts1 = echarts.init(this.$refs.echarts1)
      //指定图表的配置项和数据
      var echarts1Option = {}
      //处理数据
      const xAxis = Object.keys(orderData.data[0])//x轴的数据
      const xAxisData = { data: xAxis }
      echarts1Option.xAxis = xAxisData
      echarts1Option.yAxis = {}
      echarts1Option.legend = xAxisData
      echarts1Option.series = []
      xAxis.forEach(key => {
        echarts1Option.series.push({
          name: key,
          data: orderData.data.map(item => item[key]),
          type: 'line'
        })
      });
      // console.log(echarts1Option)
      echarts1.setOption(echarts1Option)

      //柱状图
      const echarts2 = echarts.init(this.$refs.echarts2)
      const echarts2Option = {
        legend: {
          // 图例文字颜色
          textStyle: {
            color: "#333",
          },
        },
        grid: {
          left: "20%",
        },
        // 提示框
        tooltip: {
          trigger: "axis",
        },
        xAxis: {
          type: "category", // 类目轴
          data: userData.map(item => item.date),
          axisLine: {
            lineStyle: {
              color: "#17b3a3",
            },
          },
          axisLabel: {
            interval: 0,
            color: "#333",
          },
        },
        yAxis: [
          {
            type: "value",
            axisLine: {
              lineStyle: {
                color: "#17b3a3",
              },
            },
          },
        ],
        color: ["#2ec7c9", "#b6a2de", "#5ab1ef", "#ffb980", "#d87a80", "#8d98b3"],
        series: [
          {
            name: '新增用户',
            data: userData.map(item => item.new),
            type: 'bar'
          },
          {
            name: '活跃用户',
            data: userData.map(item => item.active),
            type: 'bar'
          }
        ],
      }
      echarts2.setOption(echarts2Option)


      //饼状图
      const echarts3 = echarts.init(this.$refs.echarts3)
      const echarts3Option = {
        tooltip: {
          trigger: "item",
        },
        color: [
          "#0f78f4",
          "#dd536b",
          "#9462e5",
          "#a6a6a6",
          "#e1bb22",
          "#39c362",
          "#3ed1cf",
        ],
        series: [
          {
            data:videoData,
            type:'pie'
          }
        ],
      }
      echarts3.setOption(echarts3Option)

    })
  }


}
</script>
<style lang="less" scoped>
    .user{
      align-items: center;
      display: flex;
      padding: 0 0  20px 0;
      border-bottom: 1px solid #ccc;
      img{
        margin-right: 40px; ;
        height: 120px;
        width: 120px;
        border-radius: 50%;
      }
      .user-info{
        .name{
          font-size: 32px;
          margin-bottom: 10px;
        }
        .acess{
          font-size: 16px;
          color: #999999;
          
        }
      }
    }
    .login-info{
      p{
        line-height: 28px;
        font-size: 14px;
        color: #999999;
        span{
          color: #666666;
          margin-left: 60px;
        }
      }
    }
    .num{
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      .el-card{
      width: 32%;
      margin-bottom: 20px;
      }
      .icon{
        width:80px;
        height: 80px;
        color: #fff;
        font-size: 30px;
        line-height: 80px;
        text-align: center;
      }
      .details{
        display: flex;
        flex-direction: column;
        justify-content: center;
        margin-left: 15px;
        .price{
          font-size: 30px;
          margin-bottom: 10px;
          line-height: 30px;
          height: 30px;
        }
        .name{
          font-size: 14px;
          color: #999999;
          text-align: center;
        }
      }
    }
    .graph{
      margin-top: 20px;
      display: flex;
      justify-content: space-between;
      .el-card{
        width: 460px;
      }
    }
  </style>

